package com.lino.design.domain.service.engine;

import com.lino.design.domain.model.aggregates.TreeRich;
import com.lino.design.domain.model.vo.EngineResult;

import java.util.Map;

/**
 * @description: 决策引擎接口
 * @author: lingjian
 * @createDate: 2022/12/20 16:42
 */
public interface IEngine {

    /**
     * 返回决策结果
     *
     * @param treeId         树节点ID
     * @param userId         用户ID
     * @param treeRich       规则树聚合
     * @param decisionMatter 扩展参数
     * @return 决策结果
     */
    EngineResult process(final Long treeId, final String userId, TreeRich treeRich, final Map<String, String> decisionMatter);
}
